Package de.yaams.maker.helper.gui.icons

Source Code of de.yaams.maker.helper.gui.icons.IconBrowser$IconListCellRenderer

/**
*
*/
package de.yaams.maker.helper.gui.icons;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;

import javax.swing.DefaultListCellRenderer;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListCellRenderer;

import de.yaams.maker.helper.gui.AE;
import de.yaams.maker.helper.gui.YFactory;
import de.yaams.maker.helper.gui.YScrollPane;
import de.yaams.maker.helper.gui.YToolBar;

/**
* @author Praktikant
*
*/
public class IconBrowser extends JPanel {

  private static final long serialVersionUID = -4045610963978649542L;
  protected int size;
  protected JList list;

  /**
   *
   */
  public IconBrowser(String[] icons) {
    super(new BorderLayout());

    size = 32;

    // build toolbar
    YToolBar y = new YToolBar();
    y.add(YFactory.b("16", null, new AE() {

      @Override
      public void run() {
        size = 16;
        repaint();

      }
    }));
    y.add(YFactory.b("32", null, new AE() {

      @Override
      public void run() {
        size = 32;
        repaint();

      }
    }));
    add(y, BorderLayout.NORTH);

    // build list
    list = new JList(icons == null ? IconCache.getAllUniqueIcons().toArray() : icons);
    list.setCellRenderer(new IconListCellRenderer());
    list.setLayoutOrientation(JList.VERTICAL_WRAP);
    add(new YScrollPane(list), BorderLayout.CENTER);

  }

  /**
   * Get the selected icon or null
   *
   * @return
   */
  public String getSelectedIcon() {
    return list.getSelectedIndex() == -1 ? null : list.getSelectedValue().toString();
  }

  /**
   * Renderer
   *
   * @author Praktikant
   *
   */
  class IconListCellRenderer implements ListCellRenderer {

    protected DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer();

    @Override
    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
      JLabel renderer = (JLabel) defaultRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
      renderer.setIcon(IconCache.get(renderer.getText(), size));
      renderer.setPreferredSize(new Dimension(size + size / 16, size + size / 16));
      renderer.setText("");
      return renderer;
    }
  }
}
TOP

Related Classes of de.yaams.maker.helper.gui.icons.IconBrowser$IconListCellRenderer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.